package com.jrx.anytxn.reporting.service;

import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.customer.entity.CmLimitAdjustLog;
import com.jrx.anytxn.param.entity.PrOrganizationTable;
import com.jrx.anytxn.reporting.entity.MrCustomerInfo;
import com.jrx.anytxn.reporting.entity.MrLoanAccountInfo;
import com.jrx.anytxn.reporting.entity.MrPaymentLog;
import com.jrx.anytxn.reporting.entity.MrRepaymentPlan;
import com.jrx.anytxn.transaction.entity.TlLoanStagingMapping;

import java.io.IOException;
import java.util.List;

public interface IReportingFileService {
    /**
     * 合并文件
     * @param org
     * @param filePath
     * @param fileName
     * @throws TxnException
     */
    void mergeFile(PrOrganizationTable org, String filePath , String fileName) throws IOException;


    String createCustomerFileMessage(MrCustomerInfo mrCustomerInfo);


    String createLoanFileMessage(MrLoanAccountInfo mrLoanAccountInfo);

    String createPaymentFileMessage(MrPaymentLog mrPaymentLog);

    String createPlanFileMessage(MrRepaymentPlan mrRepaymentPlan);

    String createLimitFileMessage(CmLimitAdjustLog cmLimitAdjustLog) throws TxnException;

    String createStagingFileMessage(TlLoanStagingMapping tlLoanStagingMapping);

    void generatingFile(List<String> messageList, String reportingPath , String fileName, String fileType) throws IOException;

    void mergeReportingFile(String reportingPath,String toDay,String fileType);
}
